![]() ![]() ![]() ![]() | Table of Contents |
This lesson discusses the parts of an applet. If you haven't yet compiled an applet and included it in an HTML page, you might want to do so now. Step by step instructions are in Getting Started: The "Hello World" Applet.
Every applet is implemented by creating a subclass of the Applet class. The following figure shows the inheritance hierarchy of the Applet class. This hierarchy determines much of what an applet can do and how, as you'll see on the next few pages.
java.lang.Object | +----java.awt.Component | +----java.awt.Container | +----java.awt.Panel | +----java.applet.AppletA Simple Applet
Below is the source code for an applet called Simple. The Simple applet displays a descriptive string whenever it encounters a major milestone in its life, such as when the user first visits the page the applet's on. The pages that follow use the Simple applet and build upon it to illustrate concepts that are common to many applets. If you find yourself baffled by Java source code, you might want to go to Writing Java Programsto learn about the language.
For comparison, here's the Alpha 3 version of Simple.java.import java.awt.Graphics; public class Simple extends java.applet.Applet { StringBuffer buffer = new StringBuffer(); public void init() { resize(500, 20); addItem("initializing... "); } public void start() { addItem("starting... "); } public void stop() { addItem("stopping... "); } public void destroy() { addItem("preparing for unloading..."); } public void addItem(String newWord) { System.out.println(newWord); buffer.append(newWord); repaint(); } public void paint(Graphics g) { g.drawRect(0, 0, size().width - 1, size().height - 1); g.drawString(buffer.toString(), 5, 15); } }
The Life Cycle of an Applet
You can use the Simple applet to learn about the milestones in every applet's life.Methods for Milestones
The Applet class provides a framework for applet execution, defining methods that the system calls when milestones -- major events in an applet's life cycle -- occur. Every applet must override some or all of these methods to respond appropriately.Methods for Drawing and Event Handling
Applets inherit the drawing and event handling methods of the AWT Component class. (AWT stands for Advanced Windowing Toolkit; it's the package that applets and applications use to produce user interfaces.) Drawing refers to anything related to representing an applet on-screen -- drawing images, presenting user interface components such as buttons, or using graphics primitives. Event handling refers to detecting and processing user input such as mouse clicks and key presses, as well as more abstract events such as saving files and iconifying windows.Methods for Adding UI Components
Applets inherit from the AWT Container class. This means that they are designed to hold Components -- user interface objects such as buttons, labels, pop-up lists, and scrollbars. Like other Containers, applets use layout managers that control the positioning of Components.Threads in Applets
Even the simplest applets run in multiple threads, although it's not always apparent. Many applets create and use their own threads, so that they perform well without affecting the performance of the applet viewer or of other applets.What Applets Can and Can't Do
Things applets can't do, for security reasons: They can't load libraries written in any language but Java. Also, windows that an applet brings up are distinguished by a red bar and some warning text, so that applets can't look like trusted applications.Things that applets can do, that you might not expect: Although most applets stop running once you leave their page, they don't have to.
[List what else applets can and can't do, and how you can find out the restrictions on the particular system your applet is running within.]
![]() ![]() ![]() ![]() | Table of Contents |